﻿using System;
using System.ComponentModel;

namespace Tms.Model
{
    //用户信息表（用户指登录用户，把登录用户称为“manager”，似有不妥）
    public class manager
    {
        //常规字段
        private int _id;                 //自增主键
        private int _role_id;            //角色ID，【暂不用】
        private int _role_type = 0;      //角色类型，即权限类型，【目前是固定三种，后来去掉了“访客”，变为两种】
        private string _privileges;      //权限，【暂不用】    
        private string _user_name;       //用户名，即登录账号，【应该唯一】
        private string _password;        //登录密码
        private string _salt;            //盐，6位随机字符串，加密解密时会用到
        private string _real_name = "";  //用户昵称、真实姓名
        private string _telephone = "";  //联系电话
        private string _email = "";      //电子邮箱
        private int _is_lock = 0;        //是否锁定，即是否禁用，库中类型为长整型（其实改为字节类型更好）
        private string _doctor_name;     //【医生姓名】（因为登录人可能是医生的助手）
        private string _dept_name;       //科室名称
        private DateTime _add_time = DateTime.Now;  //记录的添加、修改时间

        #region 属性

        //自增ID
        public int id
        {
            set { _id = value; }
            get { return _id; }
        }
        
        //角色ID，暂不用
        public int role_id
        {
            set { _role_id = value; }
            get { return _role_id; }
        }
        
        //角色类型，即权限类型
        public int role_type
        {
            set { _role_type = value; }
            get { return _role_type; }
        }
        
        //权限，暂不用
        public string privileges
        {
            set { _privileges = value; }
            get { return _privileges; }
        }
        
        //用户名，即登录账号
        public string user_name
        {
            set { _user_name = value; }
            get { return _user_name; }
        }
        
        //登录密码
        public string password
        {
            set { _password = value; }
            get { return _password; }
        }
        
        //盐，6位随机字符串
        public string salt
        {
            set { _salt = value; }
            get { return _salt; }
        }

        //用户昵称、真实姓名
        public string real_name
        {
            set { _real_name = value; }
            get { return _real_name; }
        }
        
        //联系电话
        public string telephone
        {
            set { _telephone = value; }
            get { return _telephone; }
        }
        
        //电子邮箱
        public string email
        {
            set { _email = value; }
            get { return _email; }
        }
        
        //是否锁定，即是否禁用
        public int is_lock
        {
            set { _is_lock = value; }
            get { return _is_lock; }
        }

        //医生姓名
        public string doctor_name
        {
            set { _doctor_name = value; }
            get { return _doctor_name; }
        }

        //科室名称
        public string dept_name
        {
            set { _dept_name = value; }
            get { return _dept_name; }
        }

        //添加时间
        public DateTime add_time
        {
            set { _add_time = value; }
            get { return _add_time; }
        }

        #endregion 

    }

    //角色类型
    public enum RoleTypeEnum
    {
        [Description("超级管理员")]    //超级管理员（拥有所有权限）   
        admin = 1,    
        [Description("访客")]          //访客（为其准备了一个虚拟患者，似有不妥，因为有人提出不能有入库数据）//【暂不用】
        guest = 2,    
        [Description("系统管理员")]    //系统管理员（不能进行刺激作业，主要用来管理登录用户、数据恢复、导出等）//【暂不用】
        sys = 3,    
        [Description("普通操作员")]    //普通操作员（主要用来进行刺激作业，比如，允许数据备份，但不允许恢复）
        nomal = 0     
    }


    //
    //注1：系统通过两种角色为用户分配权限：超级管理员、普通操作员。
    //
    //注2：超级管理员：超级管理员具有所有权限。
    //
    //     超级管理员特有权限包括：用户管理、数据库还原、操作日志的查看、TMS治疗指南的读写、标准方案库的读写、TBS方案库的读写。
    //
    //注3：普通操作员：拥有除超级管理员特有权限之外的所有权限。
    //
    //注4：访客：禁用所有菜单、禁用“选择患者”（所有数据入“虚拟患者”）、允许针对“虚拟患者”，选择方案  //暂不用
    //
    //注5：密码允许为空
    //
}
